package com.lcj.aoch.rule.controller.form;

import io.swagger.v3.oas.annotations.media.Schema;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;

@Schema(description = "计算司机取消订单的表单")
public class CalculateDriverCancelOrderForm {
  @NotNull(message = "waitingMinute不能为空")
  @Min(value = 0L, message = "waitingMinute不能小于0")
  @Schema(description = "司机等时分钟数")
  private Short waitingMinute;
  
  @NotNull(message = "cancelNum不能为空")
  @Min(value = 0L, message = "cancelNum不能小于0")
  @Schema(description = "司机当天取消订单次数")
  private Short cancelNum;
  
  @NotNull(message = "acceptMinute不能为空")
  @Min(value = 0L, message = "acceptMinute不能小于0")
  @Schema(description = "接单口到当前的分钟数")
  private Short acceptMinute;
  
  @NotBlank(message = "status不能为空")
  @Pattern(regexp = "^未到达代驾点$||^到达代驾点$||^开始代驾$")
  @Schema(description = "状态")
  private String status;
  
  public void setWaitingMinute(Short waitingMinute) {
    this.waitingMinute = waitingMinute;
  }
  
  public void setCancelNum(Short cancelNum) {
    this.cancelNum = cancelNum;
  }
  
  public void setAcceptMinute(Short acceptMinute) {
    this.acceptMinute = acceptMinute;
  }
  
  public void setStatus(String status) {
    this.status = status;
  }
  
  public CalculateDriverCancelOrderForm(Short waitingMinute, Short cancelNum, Short acceptMinute, String status) {
    this.waitingMinute = waitingMinute;
    this.cancelNum = cancelNum;
    this.acceptMinute = acceptMinute;
    this.status = status;
  }
  
  public CalculateDriverCancelOrderForm() {}
  
  public String toString() {
    return "CalculateDriverCancelOrderForm(waitingMinute=" + getWaitingMinute() + ", cancelNum=" + getCancelNum() + ", acceptMinute=" + getAcceptMinute() + ", status=" + getStatus() + ")";
  }
  
  public boolean equals(Object o) {
    if (o == this)
      return true; 
    if (!(o instanceof CalculateDriverCancelOrderForm))
      return false; 
    CalculateDriverCancelOrderForm other = (CalculateDriverCancelOrderForm)o;
    if (!other.canEqual(this))
      return false; 
    Object this$waitingMinute = getWaitingMinute(), other$waitingMinute = other.getWaitingMinute();
    if ((this$waitingMinute == null) ? (other$waitingMinute != null) : !this$waitingMinute.equals(other$waitingMinute))
      return false; 
    Object this$cancelNum = getCancelNum(), other$cancelNum = other.getCancelNum();
    if ((this$cancelNum == null) ? (other$cancelNum != null) : !this$cancelNum.equals(other$cancelNum))
      return false; 
    Object this$acceptMinute = getAcceptMinute(), other$acceptMinute = other.getAcceptMinute();
    if ((this$acceptMinute == null) ? (other$acceptMinute != null) : !this$acceptMinute.equals(other$acceptMinute))
      return false; 
    Object this$status = getStatus(), other$status = other.getStatus();
    return !((this$status == null) ? (other$status != null) : !this$status.equals(other$status));
  }
  
  protected boolean canEqual(Object other) {
    return other instanceof CalculateDriverCancelOrderForm;
  }
  
  public int hashCode() {
    int PRIME = 59;
    int result = 1;
    Object $waitingMinute = getWaitingMinute();
    result = result * 59 + (($waitingMinute == null) ? 43 : $waitingMinute.hashCode());
    Object $cancelNum = getCancelNum();
    result = result * 59 + (($cancelNum == null) ? 43 : $cancelNum.hashCode());
    Object $acceptMinute = getAcceptMinute();
    result = result * 59 + (($acceptMinute == null) ? 43 : $acceptMinute.hashCode());
    Object $status = getStatus();
    return result * 59 + (($status == null) ? 43 : $status.hashCode());
  }
  
  public Short getWaitingMinute() {
    return this.waitingMinute;
  }
  
  public Short getCancelNum() {
    return this.cancelNum;
  }
  
  public Short getAcceptMinute() {
    return this.acceptMinute;
  }
  
  public String getStatus() {
    return this.status;
  }
}
